﻿using System;
using System.Collections.Generic;
using System.Text;

namespace StockTrader.DAL.HoseAdapter.FileParser.Structure
{
    #region [Stock and bonds]
    public sealed class Securities
    {

        private Int16 mStockno;
        [FieldLength(2)]
        public Int16 Stockno
        {
            get { return mStockno; }
            set { mStockno = value; }
        }

        private String mStockSymbol;
        [FieldLength(8)]
        public String StockSymbol
        {
            get { return mStockSymbol; }
            set { mStockSymbol = value; }
        }

        //  + S: Stock
        //  + D: Bonds
        //  + U: Derivative   
        private String mStockType;
        [FieldLength(1)]
        public String StockType
        {
            get { return mStockType; }
            set { mStockType = value; }
        }

        private Int32 mCeilling;
        [FieldLength(4)]
        public Int32 Ceilling
        {
            get { return mCeilling; }
            set { mCeilling = value; }
        }

        private Int32 mFloor;
        [FieldLength(4)]
        public Int32 Floor
        {
            get { return mFloor; }
            set { mFloor = value; }
        }

        private Double mBiglotValue;
        [FieldLength(8)]
        public Double BiglotValue
        {
            get { return mBiglotValue; }
            set { mBiglotValue = value; }
        }

        private String mSercurityName;
        [FieldLength(25)]
        public String SercurityName
        {
            get { return mSercurityName; }
            set { mSercurityName = value; }
        }

        private String mSectorno;
        [FieldLength(1)]
        public String Sectorno
        {
            get { return mSectorno; }
            set { mSectorno = value; }
        }

        private String mDesigNated;
        [FieldLength(1)]
        public String DesigNated
        {
            get { return mDesigNated; }
            set { mDesigNated = value; }
        }


        // + Null: normal
        // + S: suspended
        private String mSuspension;
        [FieldLength(1)]
        public String Suspension
        {
            get { return mSuspension; }
            set { mSuspension = value; }
        }

        // + Null: normal
        // + D: delisted
        private String mDelist;
        [FieldLength(1)]
        public String Delist
        {
            get { return mDelist; }
            set { mDelist = value; }
        }

        // + Null: normal
        // + H: halt
        // + R: resume
        private String mHaltReSumFlag;
        [FieldLength(1)]
        public String HaltReSumFlag
        {
            get { return mHaltReSumFlag; }
            set { mHaltReSumFlag = value; }
        }

        // + Null: normal
        // + S: split
        private String mSplit;
        [FieldLength(1)]
        public String Split
        {
            get { return mSplit; }
            set { mSplit = value; }
        }

        // + Null: normal
        // + A: add
        // + D: dividen
        // + R: right
        private String mBenefit;
        [FieldLength(1)]
        public String Benefit
        {
            get { return mBenefit; }
            set { mBenefit = value; }
        }

        // + Null: normal
        // + M: meeting
        private String mMeeting;
        [FieldLength(1)]
        public String Meeting
        {
            get { return mMeeting; }
            set { mMeeting = value; }
        }

        // Null: normal 
        // P: provided
        // R: recevied
        private String mNotice;
        [FieldLength(1)]
        public String Notice
        {
            get { return mNotice; }
            set { mNotice = value; }
        }

        private String mClientIDRequest;
        [FieldLength(1)]
        public String ClientIDRequest
        {
            get { return mClientIDRequest; }
            set { mClientIDRequest = value; }
        }

        private Int16 mCouponRate;
        [FieldLength(2)]
        public Int16 CouponRate
        {
            get { return mCouponRate; }
            set { mCouponRate = value; }
        }

        private String mIssueDate;
        [FieldLength(6)]
        public String IssueDate
        {
            get { return mIssueDate; }
            set { mIssueDate = value; }
        }

        private String mMatureDate;
        [FieldLength(6)]
        public String MatureDate
        {
            get { return mMatureDate; }
            set { mMatureDate = value; }
        }

        private Int32 mAvrpPrice;
        [FieldLength(4)]
        public Int32 AvrpPrice
        {
            get { return mAvrpPrice; }
            set { mAvrpPrice = value; }
        }

        private Int16 mParaValue;
        [FieldLength(2)]
        public Int16 ParValue
        {
            get { return mParaValue; }
            set { mParaValue = value; }
        }

        private String mSdcFlag;
        [FieldLength(1)]
        public String SdcFlag
        {
            get { return mSdcFlag; }
            set { mSdcFlag = value; }
        }

        private Int32 mPriOrClosePrice;
        [FieldLength(4)]
        public Int32 PriorClosePrice
        {
            get { return mPriOrClosePrice; }
            set { mPriOrClosePrice = value; }
        }

        private String mRiOrCloseDate;
        [FieldLength(6)]
        public String PriorCloseDate
        {
            get { return mRiOrCloseDate; }
            set { mRiOrCloseDate = value; }
        }

        private Int32 mProjectOpen;
        [FieldLength(4)]
        public Int32 ProjectOpen
        {
            get { return mProjectOpen; }
            set { mProjectOpen = value; }
        }

        private Int32 mOpenPrice;
        [FieldLength(4)]
        public Int32 OpenPrice
        {
            get { return mOpenPrice; }
            set { mOpenPrice = value; }
        }

        private Int32 mLast;
        [FieldLength(4)]
        public Int32 Last
        {
            get { return mLast; }
            set { mLast = value; }
        }

        private Int32 mLastVol;
        [FieldLength(4)]
        public Int32 LastVol
        {
            get { return mLastVol; }
            set { mLastVol = value; }
        }

        private Double mLastVal;
        [FieldLength(8)]
        public Double LastVal
        {
            get { return mLastVal; }
            set { mLastVal = value; }
        }

        private Int32 mHighTest;
        [FieldLength(4)]
        public Int32 Highest
        {
            get { return mHighTest; }
            set { mHighTest = value; }
        }

        private Int32 mLowest;
        [FieldLength(4)]
        public Int32 Lowest
        {
            get { return mLowest; }
            set { mLowest = value; }
        }

        private Double mTotalShare;
        [FieldLength(8)]
        public Double TotalShare
        {
            get { return mTotalShare; }
            set { mTotalShare = value; }
        }

        private Double mTotalValue;
        [FieldLength(8)]
        public Double TotalValue
        {
            get { return mTotalValue; }
            set { mTotalValue = value; }
        }

        private Int16 mAccumuLateDeal;
        [FieldLength(2)]
        public Int16 AccumuLateDeal
        {
            get { return mAccumuLateDeal; }
            set { mAccumuLateDeal = value; }
        }

        private Int16 mBigDeal;
        [FieldLength(2)]
        public Int16 BigDeal
        {
            get { return mBigDeal; }
            set { mBigDeal = value; }
        }

        private Int32 mBigVol;
        [FieldLength(4)]
        public Int32 BigVol
        {
            get { return mBigVol; }
            set { mBigVol = value; }
        }

        private Double mBigVal;
        [FieldLength(8)]
        public Double BigVal
        {
            get { return mBigVal; }
            set { mBigVal = value; }
        }

        private Int16 mOddDeal;
        [FieldLength(2)]
        public Int16 OddDeal
        {
            get { return mOddDeal; }
            set { mOddDeal = value; }
        }

        private Int32 mOddVol;
        [FieldLength(4)]
        public Int32 OddVol
        {
            get { return mOddVol; }
            set { mOddVol = value; }
        }

        private Double mOddVal;
        [FieldLength(8)]
        public Double OddVal
        {
            get { return mOddVal; }
            set { mOddVal = value; }
        }

        private Int32 mBest1Bid;
        [FieldLength(4)]
        public Int32 Best1Bid
        {
            get { return mBest1Bid; }
            set { mBest1Bid = value; }
        }

        private Int32 mBest1BidVolume;
        [FieldLength(4)]
        public Int32 Best1BidVolume
        {
            get { return mBest1BidVolume; }
            set { mBest1BidVolume = value; }
        }

        private Int32 mBest2Bid;
        [FieldLength(4)]
        public Int32 Best2Bid
        {
            get { return mBest2Bid; }
            set { mBest2Bid = value; }
        }

        private Int32 mBest2BidVolume;
        [FieldLength(4)]
        public Int32 Best2BidVolume
        {
            get { return mBest2BidVolume; }
            set { mBest2BidVolume = value; }
        }

        private Int32 mBest3Bid;
        [FieldLength(4)]
        public Int32 Best3Bid
        {
            get { return mBest3Bid; }
            set { mBest3Bid = value; }
        }

        private Int32 mBest3BidVolume;
        [FieldLength(4)]
        public Int32 Best3BidVolume
        {
            get { return mBest3BidVolume; }
            set { mBest3BidVolume = value; }
        }

        private Int32 mBest1Offer;
        [FieldLength(4)]
        public Int32 Best1Offer
        {
            get { return mBest1Offer; }
            set { mBest1Offer = value; }
        }

        private Int32 mBest1OfferVolume;
        [FieldLength(4)]
        public Int32 Best1OfferVolume
        {
            get { return mBest1OfferVolume; }
            set { mBest1OfferVolume = value; }
        }

        private Int32 mBest2Offer;
        [FieldLength(4)]
        public Int32 Best2Offer
        {
            get { return mBest2Offer; }
            set { mBest2Offer = value; }
        }

        private Int32 mBest2OfferVolume;
        [FieldLength(4)]
        public Int32 Best2OfferVolume
        {
            get { return mBest2OfferVolume; }
            set { mBest2OfferVolume = value; }
        }

        private Int32 mBest3Offer;
        [FieldLength(4)]
        public Int32 Best3Offer
        {
            get { return mBest3Offer; }
            set { mBest3Offer = value; }
        }

        private Int32 mBest3OfferVolume;
        [FieldLength(4)]
        public Int32 Best3OfferVolume
        {
            get { return mBest3OfferVolume; }
            set { mBest3OfferVolume = value; }
        }

        private Int16 mBoardLost;
        [FieldLength(2)]
        public Int16 BoardLost
        {
            get { return mBoardLost; }
            set { mBoardLost = value; }
        }

        public bool change(Securities oldStock)
        {
            bool change = false;
            return change;
        }
    }
    #endregion
}
